//
//  StrategyParameterSet.h
//  StrategyInspector
//
//  Created by jiro on 12/07/29.
//  Copyright 2012 jiro music. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#include "StrategyParameter.h"
#include "DbTableEntry.h"
#include <vector>

class StrategyParameterSet : public DbTableEntry
{
public:

	enum ParameterId
	{
		Id_PrameterIndex,
		Id_Count
	};

public:

	static int parameterCount();

	virtual NSString* queryInsert() const = 0;
	virtual NSString* queryInsertValue() const = 0;
	virtual NSString* queryInsertWithSerialValue() const = 0;
	virtual NSString* queryInsertValueWithSerialValue() const = 0;

	StrategyParameterSet();
	StrategyParameterSet( const StrategyParameterSet& s );
	StrategyParameterSet( const std::vector< const char* >& values );
	virtual ~StrategyParameterSet();
	
	int getParameterCount() const;

	StrategyParameter& getParameterAtIndex( int index );
	const StrategyParameter& getParameterAtIndex( int index ) const;
	int getParameterIndex() const;
	
protected:

	std::vector< StrategyParameter* > strategyParameters;

};
